package com.example.springboot;

import org.junit.jupiter.api.Test;

import java.time.Duration;
import java.time.LocalDateTime;

/**
 * @Author：伐柯梦姝
 * @Package：com.example.springboot
 * @Project：springboot
 * @name：parking
 * @Date：2025/3/31 13:58
 * @Filename：parking
 * @for: 停车场车位占用模拟程序
 */
public class parking {
       private LocalDateTime startTime;
       private LocalDateTime endTime;
       private static String state;
       @Test
       public void test() throws InterruptedException {
              this.occupy();  //调用占用车位的方法
              System.out.println("输出车位信息");
              System.out.println("车位状态: " + state);
              if (state.equals("占用")){
                     System.out.println("开始时间= " + startTime);
              }
              Thread.sleep(10000l);  //这里我让线程休眠，模拟隔了一段时间后调用释放车位的方法
              this.release();  //调用释放车位的方法
              System.out.println("输出车位信息");
              System.out.println("车位状态: " + state);
              if (state.equals("空闲")){
                     System.out.println("开始时间= " + startTime);
                     System.out.println("结束时间= " + endTime);
                     long l = Duration.between(startTime, endTime).toMillis();
                     System.out.println("一共占用了" + l + "ms");
              }

       }

       public void occupy(){ //占用车位时调用的方法
              this.startTime = LocalDateTime.now();//以调用当前方法的时刻作为开始时间
              this.state = "占用";
              this.endTime = null;
       }

       public void release(){ //释放车位时调用的方法
              this.endTime = LocalDateTime.now();//以调用当前方法的时刻作为结束时间
              this.state = "空闲";
       }

}
